﻿#ifndef COMMCOMMAND_H
#define COMMCOMMAND_H

#include <QObject>
#include <QDebug>
#include <CommonHelper.h>
#include <QmlSignal.h>
class CommCommand : public QObject
{
    Q_OBJECT
private:
    CommCommand();

public:
    static CommCommand& I();

public:

#pragma region "实验指令"{

    //启动实验指令(62 00 00 3A)
    QString connectToLc();//连接
    QString startExperiment();//启动
    QString pauseExperiment();//暂停
    QString continueExperiment();//继续
    QString stopExperiment();//停止
    QString getMachineStatus();//获取机器状态
    QString reset(QString,QString,QString);//复位
    QString readRadiation(QString);
    QString getTurntablePosition();
    QString resetAll();
    QString getResetStatus();

#pragma endregion}

#pragma region 放靶/转靶{

    //实验操作(62 00 00 3B)
    QString getBarrier(QString,QString);//挡板
    QString analysisBarrier(QString);//解析挡板
    QString getOpenTheLid(QString,QString);//开盖
    QString rotaryCapClamp(QString,QString,QString);//旋盖夹爪

    QString getAcquisitionTarget(QString,QString,QString,QString);//取靶
    QString getClampingJaw(QString,QString);//夹爪

    QString getTransmissionTarget(int,QString,QString);//加速端回靶(与打靶传靶共用一个)
    QString getFluidTransfer(int,QString,QString,QString,QString);//转液(与纯化转液共用一个)
    QString getActivityTesting(QString,QString);
    QString getHeating(QString,QString,QString);
    //维护(62 00 00 3C)
    QString resetShiftingTarget();//复位

#pragma endregion}

#pragma region 打靶{

    //实验操作(62 00 00 3B)
    QString getSuctionTarget(QString,QString);//吸取梭体
    QString getCooling(QString,QString,QString);//冷却
    QString getDry(QString,QString);//干燥
    QString getMoveTarget(QString,QString);//锁体组合运行
    QString getLockedUp(QString,QString);//锁死
    QString getFeed(QString,QString);//进料

#pragma endregion}

#pragma region "纯化"{

    //实验操作(62 00 00 3B)
    QString getSyring(QString,QString,QString,QString,QString);//注射器
    QString getValve(QString,QString,QString);//阀门
    QString getTurntable(QString,QString);//转盘
    QString coverTheLid(QString);//盖盖

    //维护(62 00 00 3C)
    QString AirPumpPressure(QString,QString,QString);
    QString resetExpPos(QString,QString);
    QString resetInitialPosition(QString);
    QString singleStop(QString);
#pragma endregion}

#pragma region 其他{

    QString connectData(QString,QString,QString);

    QString translationInstruction (QString,QStringList);
#pragma endregion}

};
#endif // COMMCOMMAND_H
